<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>Linux-PAM 中文文档 - Linux-PAM 1.1.2 Developers&#39; Guide | Docs4dev</title>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="本手册记录了应用程序开发人员需要了解的有关Linux-PAM库的知识。 它描述了应用程序如何使用Linux-PAM库来认证用户。">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta property="og:type" content="website">
<meta property="og:title" content="Linux-PAM 中文文档 - Linux-PAM 1.1.2 Developers&#39; Guide">
<meta property="og:url" content="https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/">
<meta property="og:site_name" content="Docs4dev">
<meta property="og:locale" content="zh_CN">
<meta name="twitter:card" content="本手册记录了应用程序开发人员需要了解的有关Linux-PAM库的知识。 它描述了应用程序如何使用Linux-PAM库来认证用户。">
<meta name="generator" content="Docs4dev template engine">
<link rel="stylesheet" href="static/css/app.min.css">
<link rel="shortcut icon" href="https://www.docs4dev.com/static/images/favicon.ico" type="image/x-icon">
<script async="" src="static/js/js.js"></script>
<script async="" src="static/js/adsbygoogle.js" crossorigin="anonymous"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
      dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'UA-129571937-1');
  </script>
<link rel="amphtml" href="https://www.docs4dev.com/amp/docs/zh/linux-pam/1.1.2/reference/index.html">

<script type="application/ld+json">{"name":null,"headline":"Linux-PAM 中文文档-Linux-PAM 1.1.2 Developers' Guide","inLanguage":"zh-CN","version":"1.1.2","image":"/static/icon/icon-linux.png","datePublished":"2021-05-20T12:51:01Z","dateCreated":"2021-05-20T12:51:01Z","dateModified":"2021-07-03T16:02:23Z","@context":"https://schema.org/","@type":"APIReference","abstract":"本手册记录了应用程序开发人员需要了解的有关Linux-PAM库的知识。 它描述了应用程序如何使用Linux-PAM库来认证用户。"}</script>
</head>
<body>
<div class="book with-summary">
<div class="book-summary">
<div class="logo">
<a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference');" style="color: inherit;">
<img src="static/picture/icon-linux.png" style="width: 48px; height: 48px;" alt="Logo">
</a>
<b style="color: inherit; margin-left: 8px;">Linux-PAM 中文文档</b>
</div>
<div class="item">
<div>
<label for="version">版本</label>
<select id="version" onchange="onVersionChange(this)">
<option value="1.1.2" selected="selected">1.1.2</option>
</select>
</div>
<div style="margin-top: 8px;">
<label for="language">语言</label>
<select id="language" onchange="onLangChange(this)" value="zh">
<option value="en">English</option>
<option value="zh" selected="selected">中文</option>
</select>
</div>

</div>
<div class="item menus">
<a title="Table of Contents" style="margin-right: 8px;" href="#">
<i class="fa fa-chevron-left"></i>
<span style="margin-left: 2px;">返回目录</span>
</a>
</div>
<nav role="navigation" id="navigation">
<ul class="summary">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_SAG.html');" title="系统 Management 员指南"> 系统 Management 员指南 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-text-conventions.html');" title="2. 对文本的一些 Comment"> 2. 对文本的一些 Comment </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-overview.html');" title="3. Overview"> 3. Overview </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration.html');" title="4. Linux-PAM 配置文件"> 4. Linux-PAM 配置文件 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-file.html');" title="4.1. 配置文件语法"> 4.1. 配置文件语法 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-file.html');" title="4.1. 配置文件语法"> 4.1. 配置文件语法 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-directory.html');" title="4.2. 基于目录的配置"> 4.2. 基于目录的配置 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-example.html');" title="4.3. 示例配置文件条目"> 4.3. 示例配置文件条目 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues.html');" title="5. Security issues"> 5. Security issues </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-wrong.html');" title="5.1. 如果出现问题"> 5.1. 如果出现问题 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-wrong.html');" title="5.1. 如果出现问题"> 5.1. 如果出现问题 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-other.html');" title="5.2. 避免使用较弱的“其他”配置"> 5.2. 避免使用较弱的“其他”配置 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-module-reference.html');" title="6. 可用模块的参考指南"> 6. 可用模块的参考指南 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_access.html');" title="6.1. pam_access-logdaemon 样式的登录访问控制"> 6.1. pam_access-logdaemon 样式的登录访问控制 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_access.html');" title="6.1. pam_access-logdaemon 样式的登录访问控制"> 6.1. pam_access-logdaemon 样式的登录访问控制 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_cracklib.html');" title="6.2. pam_cracklib-根据字典词检查密码"> 6.2. pam_cracklib-根据字典词检查密码 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_debug.html');" title="6.3. pam_debug-调试 PAM 堆栈"> 6.3. pam_debug-调试 PAM 堆栈 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_deny.html');" title="6.4. pam_deny-锁定 PAM 模块"> 6.4. pam_deny-锁定 PAM 模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_echo.html');" title="6.5. pam_echo-打印短信"> 6.5. pam_echo-打印短信 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_env.html');" title="6.6. pam_env-设置/取消设置环境变量"> 6.6. pam_env-设置/取消设置环境变量 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_exec.html');" title="6.7. pam_exec-调用外部命令"> 6.7. pam_exec-调用外部命令 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_faildelay.html');" title="6.8. pam_faildelay-更改每个应用程序失败的延迟"> 6.8. pam_faildelay-更改每个应用程序失败的延迟 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_filter.html');" title="6.9. pam_filter-过滤器模块"> 6.9. pam_filter-过滤器模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_ftp.html');" title="6.10. pam_ftp-匿名访问模块"> 6.10. pam_ftp-匿名访问模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_group.html');" title="6.11. pam_group-修改组访问权限的模块"> 6.11. pam_group-修改组访问权限的模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_issue.html');" title="6.12. pam_issue-将问题文件添加到用户提示"> 6.12. pam_issue-将问题文件添加到用户提示 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_keyinit.html');" title="6.13. pam_keyinit-显示 keyinit 文件"> 6.13. pam_keyinit-显示 keyinit 文件 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_lastlog.html');" title="6.14. pam_lastlog-显示上次登录的日期"> 6.14. pam_lastlog-显示上次登录的日期 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_limits.html');" title="6.15. pam_limits-限制资源"> 6.15. pam_limits-限制资源 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_listfile.html');" title="6.16. pam_listfile-拒绝或允许基于任意文件的服务"> 6.16. pam_listfile-拒绝或允许基于任意文件的服务 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_localuser.html');" title="6.17. pam_localuser-要求将用户列出在/ etc/passwd 中"> 6.17. pam_localuser-要求将用户列出在/ etc/passwd 中 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_loginuid.html');" title="6.18. pam_loginuid-将用户的登录 uid 记录到 process 属性"> 6.18. pam_loginuid-将用户的登录 uid 记录到 process 属性 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_mail.html');" title="6.19. pam_mail-通知可用邮件"> 6.19. pam_mail-通知可用邮件 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_mkhomedir.html');" title="6.20. pam_mkhomedir-创建用户主目录"> 6.20. pam_mkhomedir-创建用户主目录 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_motd.html');" title="6.21. pam_motd-显示 motd 文件"> 6.21. pam_motd-显示 motd 文件 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_namespace.html');" title="6.22. pam_namespace-设置私有名称空间"> 6.22. pam_namespace-设置私有名称空间 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_nologin.html');" title="6.23. pam_nologin-禁止非 root 用户登录"> 6.23. pam_nologin-禁止非 root 用户登录 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_permit.html');" title="6.24. pam_permit-混杂模块"> 6.24. pam_permit-混杂模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_pwhistory.html');" title="6.25. pam_pwhistory-使用.pwhistory 文件授予访问权限"> 6.25. pam_pwhistory-使用.pwhistory 文件授予访问权限 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_rhosts.html');" title="6.26. pam_rhosts-使用.rhosts 文件授予访问权限"> 6.26. pam_rhosts-使用.rhosts 文件授予访问权限 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_rootok.html');" title="6.27. pam_rootok-仅获得 root 用户访问权限"> 6.27. pam_rootok-仅获得 root 用户访问权限 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_securetty.html');" title="6.28. pam_securetty-将 root 登录限制为特殊设备"> 6.28. pam_securetty-将 root 登录限制为特殊设备 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_selinux.html');" title="6.29. pam_selinux-设置默认的安全上下文"> 6.29. pam_selinux-设置默认的安全上下文 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_shells.html');" title="6.30. pam_shells-检查有效的登录 shell"> 6.30. pam_shells-检查有效的登录 shell </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_succeed_if.html');" title="6.31. pam_succeed_if-测试帐户 Feature"> 6.31. pam_succeed_if-测试帐户 Feature </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_tally.html');" title="6.32. pam_tally-登录计数器(统计)模块"> 6.32. pam_tally-登录计数器(统计)模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_tally2.html');" title="6.33. pam_tally2-登录计数器(统计)模块"> 6.33. pam_tally2-登录计数器(统计)模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_time.html');" title="6.34. pam_time-时间控制的访问"> 6.34. pam_time-时间控制的访问 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_timestamp.html');" title="6.35. pam_timestamp-使用缓存的成功身份验证尝试进行身份验证"> 6.35. pam_timestamp-使用缓存的成功身份验证尝试进行身份验证 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_umask.html');" title="6.36. pam_umask-设置文件模式创建掩码"> 6.36. pam_umask-设置文件模式创建掩码 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_unix.html');" title="6.37. pam_unix-传统密码验证"> 6.37. pam_unix-传统密码验证 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_userdb.html');" title="6.38. pam_userdb-针对 db 数据库进行身份验证"> 6.38. pam_userdb-针对 db 数据库进行身份验证 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_warn.html');" title="6.39. pam_warn-记录所有 PAM 项目"> 6.39. pam_warn-记录所有 PAM 项目 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_wheel.html');" title="6.40. pam_wheel-仅允许 root 访问组 wheel 的成员"> 6.40. pam_wheel-仅允许 root 访问组 wheel 的成员 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_xauth.html');" title="6.41. pam_xauth-在用户之间转发 xauth 密钥"> 6.41. pam_xauth-在用户之间转发 xauth 密钥 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-see-also.html');" title="7. See also"> 7. See also </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-author.html');" title="8. Author/acknowledgments"> 8. Author/acknowledgments </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-copyright.html');" title="9. 本文档的版权信息"> 9. 本文档的版权信息 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_MWG.html');" title="模块编写者指南"> 模块编写者指南 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-synopsis.html');" title="1.2. Synopsis"> 1.2. Synopsis </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module.html');" title="2. 模块可以期待什么"> 2. 模块可以期待什么 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html');" title="2.1. 获取和设置 PAM_ITEM 和数据"> 2.1. 获取和设置 PAM_ITEM 和数据 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html');" title="2.1. 获取和设置 PAM_ITEM 和数据"> 2.1. 获取和设置 PAM_ITEM 和数据 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_data');" title="2.1.1. 设置模块内部数据"> 2.1.1. 设置模块内部数据 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_data');" title="2.1.1. 设置模块内部数据"> 2.1.1. 设置模块内部数据 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_data');" title="2.1.2. 获取模块内部数据"> 2.1.2. 获取模块内部数据 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_item');" title="2.1.3. 设置 PAM 项目"> 2.1.3. 设置 PAM 项目 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_item');" title="2.1.4. 获取 PAM 项"> 2.1.4. 获取 PAM 项 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_user');" title="2.1.5. 获取用户名"> 2.1.5. 获取用户名 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_conv');" title="2.1.6. 对话功能"> 2.1.6. 对话功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_putenv');" title="2.1.7. 设置或更改 PAM 环境变量"> 2.1.7. 设置或更改 PAM 环境变量 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_getenv');" title="2.1.8. 获取 PAM 环境变量"> 2.1.8. 获取 PAM 环境变量 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_getenvlist');" title="2.1.9. 获取 PAM 环境"> 2.1.9. 获取 PAM 环境 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html');" title="2.2. libpam 提供的其他功能"> 2.2. libpam 提供的其他功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_strerror');" title="2.2.1. 描述 PAM 错误代码的字符串"> 2.2.1. 描述 PAM 错误代码的字符串 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_strerror');" title="2.2.1. 描述 PAM 错误代码的字符串"> 2.2.1. 描述 PAM 错误代码的字符串 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_fail_delay');" title="2.2.2. 请求延迟失败"> 2.2.2. 请求延迟失败 </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module.html');" title="3. 对模块的期望"> 3. 对模块的期望 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html');" title="3.1. Overview"> 3.1. Overview </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html');" title="3.1. Overview"> 3.1. Overview </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-1');" title="3.1.1. 功能独立性"> 3.1.1. 功能独立性 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-1');" title="3.1.1. 功能独立性"> 3.1.1. 功能独立性 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-2');" title="3.1.2. 最小化 Management 问题"> 3.1.2. 最小化 Management 问题 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-3');" title="3.1.3. 提供给模块的参数"> 3.1.3. 提供给模块的参数 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html');" title="3.2. 身份验证 Management"> 3.2. 身份验证 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_authenticate');" title="3.2.1. 用于用户身份验证的服务功能"> 3.2.1. 用于用户身份验证的服务功能 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_authenticate');" title="3.2.1. 用于用户身份验证的服务功能"> 3.2.1. 用于用户身份验证的服务功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_setcred');" title="3.2.2. 服务功能以更改凭据"> 3.2.2. 服务功能以更改凭据 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html');" title="3.3. 帐户 Management"> 3.3. 帐户 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html#mwg-pam_sm_acct_mgmt');" title="3.3.1. 帐户 Management 服务功能"> 3.3.1. 帐户 Management 服务功能 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html#mwg-pam_sm_acct_mgmt');" title="3.3.1. 帐户 Management 服务功能"> 3.3.1. 帐户 Management 服务功能 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html');" title="3.4. 会话 Management"> 3.4. 会话 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_open_session');" title="3.4.1. 服务功能以开始会话 Management"> 3.4.1. 服务功能以开始会话 Management </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_open_session');" title="3.4.1. 服务功能以开始会话 Management"> 3.4.1. 服务功能以开始会话 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_close_session');" title="3.4.2. 服务功能以终止会话 Management"> 3.4.2. 服务功能以终止会话 Management </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html');" title="3.5. 身份验证令牌 Management"> 3.5. 身份验证令牌 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html#mwg-pam_sm_chauthtok');" title="3.5.1. 服务功能，用于更改身份验证令牌"> 3.5.1. 服务功能，用于更改身份验证令牌 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html#mwg-pam_sm_chauthtok');" title="3.5.1. 服务功能，用于更改身份验证令牌"> 3.5.1. 服务功能，用于更改身份验证令牌 </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-options.html');" title="4. 通用可选参数"> 4. 通用可选参数 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming.html');" title="5. Programming notes"> 5. Programming notes </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html');" title="5.1. 模块创建的安全性问题"> 5.1. 模块创建的安全性问题 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html');" title="5.1. 模块创建的安全性问题"> 5.1. 模块创建的安全性问题 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-res');" title="5.1.1. 足够的资源"> 5.1.1. 足够的资源 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-res');" title="5.1.1. 足够的资源"> 5.1.1. 足够的资源 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-who');" title="5.1.2. 谁是谁？"> 5.1.2. 谁是谁？ </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-conv');" title="5.1.3. 使用对话功能"> 5.1.3. 使用对话功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-token');" title="5.1.4. 身份验证令牌"> 5.1.4. 身份验证令牌 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-syslog.html');" title="5.2. 使用 syslog(3)"> 5.2. 使用 syslog(3) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-libs.html');" title="5.3. 需要系统库的模块"> 5.3. 需要系统库的模块 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-example.html');" title="6. 示例模块"> 6. 示例模块 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-also.html');" title="7. See also"> 7. See also </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-author.html');" title="8. Author/acknowledgments"> 8. Author/acknowledgments </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-copyright.html');" title="9. 本文档的版权信息"> 9. 本文档的版权信息 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_ADG.html');" title="应用程序开发人员指南"> 应用程序开发人员指南 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-synopsis.html');" title="1.2. Synopsis"> 1.2. Synopsis </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-overview.html');" title="2. Overview"> 2. Overview </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface.html');" title="3. Linux-PAM 的公共接口"> 3. Linux-PAM 的公共接口 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html');" title="3.1. 应用程序可以期望什么"> 3.1. 应用程序可以期望什么 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html');" title="3.1. 应用程序可以期望什么"> 3.1. 应用程序可以期望什么 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_start');" title="3.1.1. PAMTransaction 的初始化"> 3.1.1. PAMTransaction 的初始化 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_start');" title="3.1.1. PAMTransaction 的初始化"> 3.1.1. PAMTransaction 的初始化 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_end');" title="3.1.2. PAMTransaction 终止"> 3.1.2. PAMTransaction 终止 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_set_item');" title="3.1.3. 设置 PAM 项目"> 3.1.3. 设置 PAM 项目 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_get_item');" title="3.1.4. 获取 PAM 项"> 3.1.4. 获取 PAM 项 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_strerror');" title="3.1.5. 描述 PAM 错误代码的字符串"> 3.1.5. 描述 PAM 错误代码的字符串 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_fail_delay');" title="3.1.6. 请求延迟失败"> 3.1.6. 请求延迟失败 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_authenticate');" title="3.1.7. 验证用户"> 3.1.7. 验证用户 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_setcred');" title="3.1.8. 设置用户凭据"> 3.1.8. 设置用户凭据 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_acct_mgmt');" title="3.1.9. 帐户验证 Management"> 3.1.9. 帐户验证 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_chauthtok');" title="3.1.10. 更新身份验证令牌"> 3.1.10. 更新身份验证令牌 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_open_session');" title="3.1.11. 开始 PAM 会话 Management"> 3.1.11. 开始 PAM 会话 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_close_session');" title="3.1.12. 终止 PAM 会话 Management"> 3.1.12. 终止 PAM 会话 Management </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_putenv');" title="3.1.13. 设置或更改 PAM 环境变量"> 3.1.13. 设置或更改 PAM 环境变量 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_getenv');" title="3.1.14. 获取 PAM 环境变量"> 3.1.14. 获取 PAM 环境变量 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_getenvlist');" title="3.1.15. 获取 PAM 环境"> 3.1.15. 获取 PAM 环境 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html');" title="3.2. 对应用程序的期望"> 3.2. 对应用程序的期望 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html#adg-pam_conv');" title="3.2.1. 对话功能"> 3.2.1. 对话功能 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html#adg-pam_conv');" title="3.2.1. 对话功能"> 3.2.1. 对话功能 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-programming-notes.html');" title="3.3. 编程说明"> 3.3. 编程说明 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security.html');" title="4. Linux-PAM 的安全性问题"> 4. Linux-PAM 的安全性问题 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-library-calls.html');" title="4.1. 关心标准库调用"> 4.1. 关心标准库调用 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-library-calls.html');" title="4.1. 关心标准库调用"> 4.1. 关心标准库调用 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-service-name.html');" title="4.2. 选择服务名称"> 4.2. 选择服务名称 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-conv-function.html');" title="4.3. 对话功能"> 4.3. 对话功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-user-identity.html');" title="4.4. 用户的身份"> 4.4. 用户的身份 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-resources.html');" title="4.5. 足够的资源"> 4.5. 足够的资源 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam_misc.html');" title="5. 辅助函数库"> 5. 辅助函数库 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html');" title="5.1. 提供的功能"> 5.1. 提供的功能 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html');" title="5.1. 提供的功能"> 5.1. 提供的功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-misc_conv');" title="5.1.1. 基于文本的对话功能"> 5.1.1. 基于文本的对话功能 </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-misc_conv');" title="5.1.1. 基于文本的对话功能"> 5.1.1. 基于文本的对话功能 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_paste_env');" title="5.1.2. 将环境复制到 PAM 的环境"> 5.1.2. 将环境复制到 PAM 的环境 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_drop_env');" title="5.1.3. 解放本地保存的环境"> 5.1.3. 解放本地保存的环境 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_setenv');" title="5.1.4. BSD 之类的 PAM 环境变量设置"> 5.1.4. BSD 之类的 PAM 环境变量设置 </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-porting.html');" title="6. 移植旧版应用程序"> 6. 移植旧版应用程序 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-glossary.html');" title="7. PAM 相关术语词汇表"> 7. PAM 相关术语词汇表 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-example.html');" title="8. 一个示例应用"> 8. 一个示例应用 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-files.html');" title="9. Files"> 9. Files </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-see-also.html');" title="10. See also"> 10. See also </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-author.html');" title="11. Author/acknowledgments"> 11. Author/acknowledgments </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-copyright.html');" title="12. 本文档的版权信息"> 12. 本文档的版权信息 </a> </li>
</ul> </li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<header class="book-header">
<div class="dropdown pull-right js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-globe"></i>
</a>
<div class="dropdown-menu dropdown-left">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('zh_CN')">中文</button>
</div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('en_US')">English</button>
</div>
</div>
</div>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign up" href="register.html">
<i class="fa fa-sign-in"></i> <span>注册</span>
</a>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign in" href="register.html">
<i class="fa fa-sign-in"></i>
<span>登录</span>
</a>
<a class="btn pull-left js-toolbar-action btn-summary" href="#"><i class="fa fa-align-justify"></i></a>
<div class="dropdown pull-left font-settings js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Font Settings" href="#">
<i class="fa fa-font"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-2 font-reduce">A</button>
<button class="button size-2 font-enlarge">A</button>
</div>
<div class="buttons">
<button class="button size-2 family-serif">Serif</button>
<button class="button size-2 family-sans">Sans</button>
</div>
<div class="buttons">
<button class="button size-3 theme-white">White</button>
<button class="button size-3 theme-sepia">Sepia</button>
<button class="button size-3 theme-night">Night</button>
</div>
</div>
</div>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
<div class="dropdown pull-left js-toolbar-action mobile">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-chevron-down"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<a class="button size-1" aria-label="Home" href="zh.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Tools" href="index1.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
</div>
</div>
</div>
<div id="autocomplete" class="pull-right"></div>
<span id="toolbar-title"></span>
</header>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal markdown-section">
<div id="content">
<h1>Linux-PAM 1.1.2 Developers&#39; Guide</h1>
<div><ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6108808167664152" data-ad-slot="6964403648"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<div><div class="divider">
<span class="divider-inner-text">Table of Contents</span>
</div>
<ul class="toc">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_SAG.html');" title="系统 Management 员指南"> 系统 Management 员指南 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-text-conventions.html');" title="2. 对文本的一些 Comment"> 2. 对文本的一些 Comment </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-overview.html');" title="3. Overview"> 3. Overview </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration.html');" title="4. Linux-PAM 配置文件"> 4. Linux-PAM 配置文件 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-file.html');" title="4.1. 配置文件语法"> 4.1. 配置文件语法 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-file.html');" title="4.1. 配置文件语法"> 4.1. 配置文件语法 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-directory.html');" title="4.2. 基于目录的配置"> 4.2. 基于目录的配置 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-configuration-example.html');" title="4.3. 示例配置文件条目"> 4.3. 示例配置文件条目 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues.html');" title="5. Security issues"> 5. Security issues </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-wrong.html');" title="5.1. 如果出现问题"> 5.1. 如果出现问题 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-wrong.html');" title="5.1. 如果出现问题"> 5.1. 如果出现问题 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-security-issues-other.html');" title="5.2. 避免使用较弱的“其他”配置"> 5.2. 避免使用较弱的“其他”配置 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-module-reference.html');" title="6. 可用模块的参考指南"> 6. 可用模块的参考指南 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_access.html');" title="6.1. pam_access-logdaemon 样式的登录访问控制"> 6.1. pam_access-logdaemon 样式的登录访问控制 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_access.html');" title="6.1. pam_access-logdaemon 样式的登录访问控制"> 6.1. pam_access-logdaemon 样式的登录访问控制 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_cracklib.html');" title="6.2. pam_cracklib-根据字典词检查密码"> 6.2. pam_cracklib-根据字典词检查密码 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_debug.html');" title="6.3. pam_debug-调试 PAM 堆栈"> 6.3. pam_debug-调试 PAM 堆栈 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_deny.html');" title="6.4. pam_deny-锁定 PAM 模块"> 6.4. pam_deny-锁定 PAM 模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_echo.html');" title="6.5. pam_echo-打印短信"> 6.5. pam_echo-打印短信 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_env.html');" title="6.6. pam_env-设置/取消设置环境变量"> 6.6. pam_env-设置/取消设置环境变量 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_exec.html');" title="6.7. pam_exec-调用外部命令"> 6.7. pam_exec-调用外部命令 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_faildelay.html');" title="6.8. pam_faildelay-更改每个应用程序失败的延迟"> 6.8. pam_faildelay-更改每个应用程序失败的延迟 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_filter.html');" title="6.9. pam_filter-过滤器模块"> 6.9. pam_filter-过滤器模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_ftp.html');" title="6.10. pam_ftp-匿名访问模块"> 6.10. pam_ftp-匿名访问模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_group.html');" title="6.11. pam_group-修改组访问权限的模块"> 6.11. pam_group-修改组访问权限的模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_issue.html');" title="6.12. pam_issue-将问题文件添加到用户提示"> 6.12. pam_issue-将问题文件添加到用户提示 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_keyinit.html');" title="6.13. pam_keyinit-显示 keyinit 文件"> 6.13. pam_keyinit-显示 keyinit 文件 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_lastlog.html');" title="6.14. pam_lastlog-显示上次登录的日期"> 6.14. pam_lastlog-显示上次登录的日期 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_limits.html');" title="6.15. pam_limits-限制资源"> 6.15. pam_limits-限制资源 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_listfile.html');" title="6.16. pam_listfile-拒绝或允许基于任意文件的服务"> 6.16. pam_listfile-拒绝或允许基于任意文件的服务 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_localuser.html');" title="6.17. pam_localuser-要求将用户列出在/ etc/passwd 中"> 6.17. pam_localuser-要求将用户列出在/ etc/passwd 中 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_loginuid.html');" title="6.18. pam_loginuid-将用户的登录 uid 记录到 process 属性"> 6.18. pam_loginuid-将用户的登录 uid 记录到 process 属性 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_mail.html');" title="6.19. pam_mail-通知可用邮件"> 6.19. pam_mail-通知可用邮件 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_mkhomedir.html');" title="6.20. pam_mkhomedir-创建用户主目录"> 6.20. pam_mkhomedir-创建用户主目录 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_motd.html');" title="6.21. pam_motd-显示 motd 文件"> 6.21. pam_motd-显示 motd 文件 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_namespace.html');" title="6.22. pam_namespace-设置私有名称空间"> 6.22. pam_namespace-设置私有名称空间 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_nologin.html');" title="6.23. pam_nologin-禁止非 root 用户登录"> 6.23. pam_nologin-禁止非 root 用户登录 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_permit.html');" title="6.24. pam_permit-混杂模块"> 6.24. pam_permit-混杂模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_pwhistory.html');" title="6.25. pam_pwhistory-使用.pwhistory 文件授予访问权限"> 6.25. pam_pwhistory-使用.pwhistory 文件授予访问权限 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_rhosts.html');" title="6.26. pam_rhosts-使用.rhosts 文件授予访问权限"> 6.26. pam_rhosts-使用.rhosts 文件授予访问权限 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_rootok.html');" title="6.27. pam_rootok-仅获得 root 用户访问权限"> 6.27. pam_rootok-仅获得 root 用户访问权限 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_securetty.html');" title="6.28. pam_securetty-将 root 登录限制为特殊设备"> 6.28. pam_securetty-将 root 登录限制为特殊设备 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_selinux.html');" title="6.29. pam_selinux-设置默认的安全上下文"> 6.29. pam_selinux-设置默认的安全上下文 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_shells.html');" title="6.30. pam_shells-检查有效的登录 shell"> 6.30. pam_shells-检查有效的登录 shell </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_succeed_if.html');" title="6.31. pam_succeed_if-测试帐户 Feature"> 6.31. pam_succeed_if-测试帐户 Feature </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_tally.html');" title="6.32. pam_tally-登录计数器(统计)模块"> 6.32. pam_tally-登录计数器(统计)模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_tally2.html');" title="6.33. pam_tally2-登录计数器(统计)模块"> 6.33. pam_tally2-登录计数器(统计)模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_time.html');" title="6.34. pam_time-时间控制的访问"> 6.34. pam_time-时间控制的访问 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_timestamp.html');" title="6.35. pam_timestamp-使用缓存的成功身份验证尝试进行身份验证"> 6.35. pam_timestamp-使用缓存的成功身份验证尝试进行身份验证 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_umask.html');" title="6.36. pam_umask-设置文件模式创建掩码"> 6.36. pam_umask-设置文件模式创建掩码 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_unix.html');" title="6.37. pam_unix-传统密码验证"> 6.37. pam_unix-传统密码验证 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_userdb.html');" title="6.38. pam_userdb-针对 db 数据库进行身份验证"> 6.38. pam_userdb-针对 db 数据库进行身份验证 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_warn.html');" title="6.39. pam_warn-记录所有 PAM 项目"> 6.39. pam_warn-记录所有 PAM 项目 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_wheel.html');" title="6.40. pam_wheel-仅允许 root 访问组 wheel 的成员"> 6.40. pam_wheel-仅允许 root 访问组 wheel 的成员 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-pam_xauth.html');" title="6.41. pam_xauth-在用户之间转发 xauth 密钥"> 6.41. pam_xauth-在用户之间转发 xauth 密钥 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-see-also.html');" title="7. See also"> 7. See also </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-author.html');" title="8. Author/acknowledgments"> 8. Author/acknowledgments </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/sag-copyright.html');" title="9. 本文档的版权信息"> 9. 本文档的版权信息 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_MWG.html');" title="模块编写者指南"> 模块编写者指南 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-introduction-synopsis.html');" title="1.2. Synopsis"> 1.2. Synopsis </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module.html');" title="2. 模块可以期待什么"> 2. 模块可以期待什么 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html');" title="2.1. 获取和设置 PAM_ITEM 和数据"> 2.1. 获取和设置 PAM_ITEM 和数据 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html');" title="2.1. 获取和设置 PAM_ITEM 和数据"> 2.1. 获取和设置 PAM_ITEM 和数据 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_data');" title="2.1.1. 设置模块内部数据"> 2.1.1. 设置模块内部数据 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_data');" title="2.1.1. 设置模块内部数据"> 2.1.1. 设置模块内部数据 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_data');" title="2.1.2. 获取模块内部数据"> 2.1.2. 获取模块内部数据 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_set_item');" title="2.1.3. 设置 PAM 项目"> 2.1.3. 设置 PAM 项目 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_item');" title="2.1.4. 获取 PAM 项"> 2.1.4. 获取 PAM 项 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_get_user');" title="2.1.5. 获取用户名"> 2.1.5. 获取用户名 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#mwg-pam_conv');" title="2.1.6. 对话功能"> 2.1.6. 对话功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_putenv');" title="2.1.7. 设置或更改 PAM 环境变量"> 2.1.7. 设置或更改 PAM 环境变量 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_getenv');" title="2.1.8. 获取 PAM 环境变量"> 2.1.8. 获取 PAM 环境变量 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-item.html#adg-pam_getenvlist');" title="2.1.9. 获取 PAM 环境"> 2.1.9. 获取 PAM 环境 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html');" title="2.2. libpam 提供的其他功能"> 2.2. libpam 提供的其他功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_strerror');" title="2.2.1. 描述 PAM 错误代码的字符串"> 2.2.1. 描述 PAM 错误代码的字符串 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_strerror');" title="2.2.1. 描述 PAM 错误代码的字符串"> 2.2.1. 描述 PAM 错误代码的字符串 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-by-module-other.html#adg-pam_fail_delay');" title="2.2.2. 请求延迟失败"> 2.2.2. 请求延迟失败 </a> </li>
</ul> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module.html');" title="3. 对模块的期望"> 3. 对模块的期望 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html');" title="3.1. Overview"> 3.1. Overview </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html');" title="3.1. Overview"> 3.1. Overview </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-1');" title="3.1.1. 功能独立性"> 3.1.1. 功能独立性 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-1');" title="3.1.1. 功能独立性"> 3.1.1. 功能独立性 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-2');" title="3.1.2. 最小化 Management 问题"> 3.1.2. 最小化 Management 问题 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-overview.html#mwg-expected-of-module-overview-3');" title="3.1.3. 提供给模块的参数"> 3.1.3. 提供给模块的参数 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html');" title="3.2. 身份验证 Management"> 3.2. 身份验证 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_authenticate');" title="3.2.1. 用于用户身份验证的服务功能"> 3.2.1. 用于用户身份验证的服务功能 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_authenticate');" title="3.2.1. 用于用户身份验证的服务功能"> 3.2.1. 用于用户身份验证的服务功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-auth.html#mwg-pam_sm_setcred');" title="3.2.2. 服务功能以更改凭据"> 3.2.2. 服务功能以更改凭据 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html');" title="3.3. 帐户 Management"> 3.3. 帐户 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html#mwg-pam_sm_acct_mgmt');" title="3.3.1. 帐户 Management 服务功能"> 3.3.1. 帐户 Management 服务功能 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-acct.html#mwg-pam_sm_acct_mgmt');" title="3.3.1. 帐户 Management 服务功能"> 3.3.1. 帐户 Management 服务功能 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html');" title="3.4. 会话 Management"> 3.4. 会话 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_open_session');" title="3.4.1. 服务功能以开始会话 Management"> 3.4.1. 服务功能以开始会话 Management </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_open_session');" title="3.4.1. 服务功能以开始会话 Management"> 3.4.1. 服务功能以开始会话 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-session.html#mwg-pam_sm_close_session');" title="3.4.2. 服务功能以终止会话 Management"> 3.4.2. 服务功能以终止会话 Management </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html');" title="3.5. 身份验证令牌 Management"> 3.5. 身份验证令牌 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html#mwg-pam_sm_chauthtok');" title="3.5.1. 服务功能，用于更改身份验证令牌"> 3.5.1. 服务功能，用于更改身份验证令牌 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-expected-of-module-chauthtok.html#mwg-pam_sm_chauthtok');" title="3.5.1. 服务功能，用于更改身份验证令牌"> 3.5.1. 服务功能，用于更改身份验证令牌 </a> </li>
</ul> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-options.html');" title="4. 通用可选参数"> 4. 通用可选参数 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming.html');" title="5. Programming notes"> 5. Programming notes </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html');" title="5.1. 模块创建的安全性问题"> 5.1. 模块创建的安全性问题 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html');" title="5.1. 模块创建的安全性问题"> 5.1. 模块创建的安全性问题 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-res');" title="5.1.1. 足够的资源"> 5.1.1. 足够的资源 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-res');" title="5.1.1. 足够的资源"> 5.1.1. 足够的资源 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-who');" title="5.1.2. 谁是谁？"> 5.1.2. 谁是谁？ </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-conv');" title="5.1.3. 使用对话功能"> 5.1.3. 使用对话功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-sec.html#mwg-see-programming-sec-token');" title="5.1.4. 身份验证令牌"> 5.1.4. 身份验证令牌 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-syslog.html');" title="5.2. 使用 syslog(3)"> 5.2. 使用 syslog(3) </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-programming-libs.html');" title="5.3. 需要系统库的模块"> 5.3. 需要系统库的模块 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-example.html');" title="6. 示例模块"> 6. 示例模块 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-see-also.html');" title="7. See also"> 7. See also </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-author.html');" title="8. Author/acknowledgments"> 8. Author/acknowledgments </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/mwg-copyright.html');" title="9. 本文档的版权信息"> 9. 本文档的版权信息 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/Linux-PAM_ADG.html');" title="应用程序开发人员指南"> 应用程序开发人员指南 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction.html');" title="1. Introduction"> 1. Introduction </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-description.html');" title="1.1. Description"> 1.1. Description </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-introduction-synopsis.html');" title="1.2. Synopsis"> 1.2. Synopsis </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-overview.html');" title="2. Overview"> 2. Overview </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface.html');" title="3. Linux-PAM 的公共接口"> 3. Linux-PAM 的公共接口 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html');" title="3.1. 应用程序可以期望什么"> 3.1. 应用程序可以期望什么 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html');" title="3.1. 应用程序可以期望什么"> 3.1. 应用程序可以期望什么 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_start');" title="3.1.1. PAMTransaction 的初始化"> 3.1.1. PAMTransaction 的初始化 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_start');" title="3.1.1. PAMTransaction 的初始化"> 3.1.1. PAMTransaction 的初始化 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_end');" title="3.1.2. PAMTransaction 终止"> 3.1.2. PAMTransaction 终止 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_set_item');" title="3.1.3. 设置 PAM 项目"> 3.1.3. 设置 PAM 项目 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_get_item');" title="3.1.4. 获取 PAM 项"> 3.1.4. 获取 PAM 项 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_strerror');" title="3.1.5. 描述 PAM 错误代码的字符串"> 3.1.5. 描述 PAM 错误代码的字符串 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_fail_delay');" title="3.1.6. 请求延迟失败"> 3.1.6. 请求延迟失败 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_authenticate');" title="3.1.7. 验证用户"> 3.1.7. 验证用户 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_setcred');" title="3.1.8. 设置用户凭据"> 3.1.8. 设置用户凭据 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_acct_mgmt');" title="3.1.9. 帐户验证 Management"> 3.1.9. 帐户验证 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_chauthtok');" title="3.1.10. 更新身份验证令牌"> 3.1.10. 更新身份验证令牌 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_open_session');" title="3.1.11. 开始 PAM 会话 Management"> 3.1.11. 开始 PAM 会话 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_close_session');" title="3.1.12. 终止 PAM 会话 Management"> 3.1.12. 终止 PAM 会话 Management </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_putenv');" title="3.1.13. 设置或更改 PAM 环境变量"> 3.1.13. 设置或更改 PAM 环境变量 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_getenv');" title="3.1.14. 获取 PAM 环境变量"> 3.1.14. 获取 PAM 环境变量 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-by-app-expected.html#adg-pam_getenvlist');" title="3.1.15. 获取 PAM 环境"> 3.1.15. 获取 PAM 环境 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html');" title="3.2. 对应用程序的期望"> 3.2. 对应用程序的期望 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html#adg-pam_conv');" title="3.2.1. 对话功能"> 3.2.1. 对话功能 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-of-app-expected.html#adg-pam_conv');" title="3.2.1. 对话功能"> 3.2.1. 对话功能 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-interface-programming-notes.html');" title="3.3. 编程说明"> 3.3. 编程说明 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security.html');" title="4. Linux-PAM 的安全性问题"> 4. Linux-PAM 的安全性问题 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-library-calls.html');" title="4.1. 关心标准库调用"> 4.1. 关心标准库调用 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-library-calls.html');" title="4.1. 关心标准库调用"> 4.1. 关心标准库调用 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-service-name.html');" title="4.2. 选择服务名称"> 4.2. 选择服务名称 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-conv-function.html');" title="4.3. 对话功能"> 4.3. 对话功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-user-identity.html');" title="4.4. 用户的身份"> 4.4. 用户的身份 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-security-resources.html');" title="4.5. 足够的资源"> 4.5. 足够的资源 </a> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam_misc.html');" title="5. 辅助函数库"> 5. 辅助函数库 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html');" title="5.1. 提供的功能"> 5.1. 提供的功能 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html');" title="5.1. 提供的功能"> 5.1. 提供的功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-misc_conv');" title="5.1.1. 基于文本的对话功能"> 5.1.1. 基于文本的对话功能 </a>
<ul class="articles">
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-misc_conv');" title="5.1.1. 基于文本的对话功能"> 5.1.1. 基于文本的对话功能 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_paste_env');" title="5.1.2. 将环境复制到 PAM 的环境"> 5.1.2. 将环境复制到 PAM 的环境 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_drop_env');" title="5.1.3. 解放本地保存的环境"> 5.1.3. 解放本地保存的环境 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-libpam-functions.html#adg-pam_misc_setenv');" title="5.1.4. BSD 之类的 PAM 环境变量设置"> 5.1.4. BSD 之类的 PAM 环境变量设置 </a> </li>
</ul> </li>
</ul> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-porting.html');" title="6. 移植旧版应用程序"> 6. 移植旧版应用程序 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-glossary.html');" title="7. PAM 相关术语词汇表"> 7. PAM 相关术语词汇表 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-example.html');" title="8. 一个示例应用"> 8. 一个示例应用 </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-files.html');" title="9. Files"> 9. Files </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-see-also.html');" title="10. See also"> 10. See also </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-author.html');" title="11. Author/acknowledgments"> 11. Author/acknowledgments </a> </li>
<li> <a href="javascript:window.open('https://www.docs4dev.com/docs/zh/linux-pam/1.1.2/reference/adg-copyright.html');" title="12. 本文档的版权信息"> 12. 本文档的版权信息 </a> </li>
</ul> </li>
</ul></div>
</div>
</section>
<div class="right-sidebar">
<div class="affix"><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6108808167664152" data-ad-slot="3102929424" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</div>
</div>
<div class="ft">
<a href="#toolbar-title" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a>
<footer class="footer">
<div class="footer__container--normal">
<img alt="扫码关注公众号" title="扫码关注公众号" src="static/picture/qr-code.png" width="170" height="170">
<div class="footer__description--normal">
<p class="paragraph footer__author--normal">Docs4dev<sup class="super">&#xAE;</sup>
</p>
<p class="paragraph footer__quote&#45;&#45;normal">
如果你在使用过程中遇到任何问题，可以在 <a href="javascript:window.open('https://github.com/docs4dev/docs4dev-issues');" target="_blank" rel="noopener noreferrer">这里<i class="fa fa-external-link"></i></a> 提issue。
</p>
<div class="footer__main--normal">
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
<a href="javascript:window.open('https://beian.miit.gov.cn/');">
 蜀ICP备14021783号-6
</a>
</p>
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
Copyright &#xA9; Docs4dev all
right reserved, powered by <a href="index2.html" target="_blank">Docs4dev</a></p>
</div>
</div>
</div>
<div class="box__issues">
</div>
</footer>
</div>
</div>
</div>
</div>
</div>
<script>
  var hasToc = true;
  /*  var downloadable = /!*false*!/ false;
    var editable = /!*false*!/ false;
    var code = /!*"linux-pam"*!/ false;
    var version = /!*"1.1.2"*!/ false;
    var type = /!*"reference"*!/ false;
    var lang = /!*"zh"*!/ 'en';
    //edit link
    require(["gitbook", "jQuery"], function (gitbook, $) {
      gitbook.events.bind('start', function (e, config) {
        // Add edit toolbar to left
        var chapterId = /!*16528*!/ 0;
        if (downloadable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-download',
            text: '下载',
            onClick: function () {
              window.open('/download?code=' + code + '&version=' + version + '&type=' + type + '&lang=' + lang);
            }
          });
        }
        if (editable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-edit',
            text: '编辑此页',
            onClick: function () {
              window.open('/docs/edit?chapterId=' + chapterId + '&lang=' + lang);
            }
          });
        }
      });
    });*/
</script>
<script>
    var code = "linux-pam";
    var lang = "zh";
  </script>

<script src="static/js/autocomplete-js.js"></script>
<script src="static/js/app.min.js"></script>
<script src="static/js/search.min.js"></script>
</body>
</html>
